import axios from 'axios'

export default class NM {
  // 翻译对象
  async translateTexts(texts) {
    if (texts.length == 0) throw '翻译内容为空'

    const message = `
    你是一名专业的安全行业翻译人员，擅长将英文技术文档、安全报告、行业标准等内容准确翻译为中文。请将以下英文文本翻译为中文，确保术语准确、语言流畅，并符合安全行业的专业表达习惯。翻译时请注意上下文语境，避免直译导致的歧义或误解。

    请将翻译后的内容以 json 格式返回，放入 <json> 标签中，不要包含任何额外的解释或处理逻辑
    <json>
    [
      "翻译后的中文"
    ]
    </json>

    英文数组：
    ${JSON.stringify(texts)}
    `

    const result = await this.api(message)

    try {
      result = JSON.parse(result)
    } catch (e) {
      console.error(e, {
        result,
      })
      throw e
    }
  }

  // 翻译对象
  async translateFile(text) {
    const message = `你是一名专业的安全行业翻译人员，擅长将英文技术文档、安全报告、行业标准等内容准确翻译为中文。请将以下英文文本翻译为中文，确保术语准确、语言流畅，并符合安全行业的专业表达习惯。翻译时请注意上下文语境，避免直译导致的歧义或误解。
    
    请将翻译后的以 JSON 的形式输出，放入 <json> 标签中，不要包含任何额外的解释或处理逻辑<json>["翻译后的中文"]</json>
    
    要翻译的内容:
    ${JSON.stringify(text)}`

    const result = await this.api(message)

    try {
      result = JSON.parse(result)
    } catch (e) {
      console.error(e, {
        result,
      })
      throw e
    }
  }

  // 大模型
  async api(message) {
    let result = await axios.post('http://127.0.0.1:3000/nami', { message }).then(res => {
      return res.data.data.result
    })

    return result
  }
}
